Enums = {}

Enums.GuildEmblem = {
	GUILDEMBLEM_NONE = 0,
	GUILDEMBLEM_ALLY = 1,
	GUILDEMBLEM_ENEMY = 2,
	GUILDEMBLEM_NEUTRAL = 3,
	GUILDEMBLEM_MEMBER = 4,
	GUILDEMBLEM_OTHER = 5
}

Enums.PartyIcons = {
	SHIELD_NONE = 0,
	SHIELD_WHITEYELLOW = 1,
	SHIELD_WHITEBLUE = 2,
	SHIELD_BLUE = 3,
	SHIELD_YELLOW = 4,
	SHIELD_BLUE_SHAREDEXP = 5,
	SHIELD_YELLOW_SHAREDEXP = 6,
	SHIELD_BLUE_NOSHAREDEXP_BLINK = 7,
	SHIELD_YELLOW_NOSHAREDEXP_BLINK = 8,
	SHIELD_BLUE_NOSHAREDEXP = 9,
	SHIELD_YELLOW_NOSHAREDEXP = 10,
	SHIELD_GRAY = 11
}

Enums.Vocations = {
	NONE = 0,
	KNIGHT = 1,
	PALADIN = 2,
	SORCERER = 3,
	DRUID = 4
}

Enums.Directions = {
	NORTH = 0,
	EAST = 1,
	SOUTH = 2,
	WEST = 3,

	DIAGONAL_MASK = 4, -- from TFS
	SOUTHWEST = 0,
	SOUTHEAST = 0,
	NORTHWEST = 0,
	NORTHEAST = 0,
	INVALIDDIRECTION = 8
}

Enums.Directions.SOUTHWEST = bit.bor(Enums.Directions.DIAGONAL_MASK, 0)
Enums.Directions.SOUTHEAST = bit.bor(Enums.Directions.DIAGONAL_MASK, 1)
Enums.Directions.NORTHWEST = bit.bor(Enums.Directions.DIAGONAL_MASK, 2)
Enums.Directions.NORTHEAST = bit.bor(Enums.Directions.DIAGONAL_MASK, 3)

Enums.Skulls = {
	SKULL_NONE = 0,
	SKULL_YELLOW = 1,
	SKULL_GREEN = 2,
	SKULL_WHITE = 3,
	SKULL_RED = 4,
	SKULL_BLACK = 5,
	SKULL_ORANGE = 6
}

Enums.SpellGroups = {
	SPELLGROUP_NONE = 0,
	SPELLGROUP_ATTACK = 1,
	SPELLGROUP_HEALING = 2,
	SPELLGROUP_SUPPORT = 3,
	SPELLGROUP_SPECIAL = 4,
	SPELLGROUP_CONJURE = 5,
	SPELLGROUP_CRIPPLING = 6,
	SPELLGROUP_FOCUS = 7,
	SPELLGROUP_ULTIMATESTRIKES = 8,
	SPELLGROUP_GREATBEAMS = 9,
	SPELLGROUP_BURSTS = 10
}

-- incomplete list
Enums.TalkTypes = {
	TALKTYPE_SAY = 1,
	TALKTYPE_WHISPER = 2,
	TALKTYPE_YELL = 3,
	TALKTYPE_PRIVATE_PN = 12 -- talk to NPC
}

Enums.MessageTypes = {
	MESSAGE_STATUS_CONSOLE_RED = 13,

	MESSAGE_STATUS_DEFAULT = 17,
	MESSAGE_STATUS_WARNING = 18,
	MESSAGE_EVENT_ADVANCE = 19,

	MESSAGE_STATUS_SMALL = 21,
	MESSAGE_INFO_DESCR = 22,
	MESSAGE_DAMAGE_DEALT = 23,
	MESSAGE_DAMAGE_RECEIVED = 24,
	MESSAGE_HEALED = 25,
	MESSAGE_EXPERIENCE = 26,
	MESSAGE_DAMAGE_OTHERS = 27,
	MESSAGE_HEALED_OTHERS = 28,
	MESSAGE_EXPERIENCE_OTHERS = 29,
	MESSAGE_EVENT_DEFAULT = 30,
	MESSAGE_LOOT = 31,

	MESSAGE_GUILD = 33,
	MESSAGE_PARTY_MANAGEMENT = 34,
	MESSAGE_PARTY = 35,
	MESSAGE_EVENT_ORANGE = 36,
	MESSAGE_STATUS_CONSOLE_ORANGE = 37,
	MESSAGE_REPORT = 38,
	MESSAGE_HOTKEY = 39,
	MESSAGE_TUTORIAL_HINT = 40,
	MESSAGE_THANK_YOU = 41,
	MESSAGE_MARKET = 42,
	MESSAGE_MANA = 43,
	MESSAGE_BEYOND_LAST = 44,

	MESSAGE_ATTENTION = 48,
	MESSAGE_BOOSTED_CREATURE = 49,
	MESSAGE_OFFLINE_TRAINING = 50,
	MESSAGE_TRANSACTION = 51,
	MESSAGE_POTION = 52
}

Enums.CreatureTypes = {
	CREATURETYPE_PLAYER = 0,
	CREATURETYPE_MONSTER = 1,
	CREATURETYPE_NPC = 2,
	CREATURETYPE_SUMMONPLAYER = 3,
	CREATURETYPE_SUMMON_OWN = 3,
	CREATURETYPE_SUMMON_OTHERS = 4,
	CREATURETYPE_HIDDEN = 5,
}

Enums.CreatureIcons = {
	CREATURE_ICON_NONE,
	CREATURE_ICON_HIGHER_DAMAGE_RECEIVED,
	CREATURE_ICON_LOWER_DAMAGE_DEALT,
	CREATURE_ICON_TURNED_MELEE,
	CREATURE_ICON_INFLUENCED,
	CREATURE_ICON_FIENDISH,
	CREATURE_ICON_REDUCED_HEALTH,
}

Enums.FlagModifiers = {
	CONTROL = 0x1,
	ALT = 0x2,
	SHIFT = 0x4,
	NUMLOCK = 0x8
}

Enums.InventorySlot = {
	CONST_SLOT_HEAD = 1,
	CONST_SLOT_NECKLACE = 2,
	CONST_SLOT_BACKPACK = 3,
	CONST_SLOT_ARMOR = 4,
	CONST_SLOT_RIGHT = 5,
	CONST_SLOT_LEFT = 6,
	CONST_SLOT_LEGS = 7,
	CONST_SLOT_FEET = 8,
	CONST_SLOT_RING = 9,
	CONST_SLOT_AMMO = 10
}

Enums.States = {
	STATE_POISON = 0,
	STATE_BURN = 1,
	STATE_ENERGY = 2,
	STATE_DRUNK = 3,
	STATE_MANASHIELD = 4,
	STATE_PARALYZE = 5,
	STATE_HASTE = 6,
	STATE_SWORDS = 7,
	STATE_DROWNING = 8,
	STATE_FREEZING = 9,
	STATE_DAZZLED = 10,
	STATE_CURSED = 11,
	STATE_PARTY_BUFF = 12,
	STATE_REDSWORDS = 13,
	STATE_PIGEON = 14,
	STATE_BLEEDING = 15,
	STATE_SUFFERING_LESSER_HEX = 16,
	STATE_SUFFERING_INTENSER_HEX = 17,
	STATE_SUFFERING_GREATER_HEX = 18,
	STATE_ROOTED = 19,
	STATE_FEARED = 20,
	STATE_CURSE_I = 21,
	STATE_CURSE_II = 22,
	STATE_CURSE_III = 23,
	STATE_CURSE_IV = 24,
	STATE_CURSE_V = 25,
	STATE_MAGIC_SHIELD = 26
}
